﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace Kokomo.Mirror.Test.Models
{
	class SimpleClass
	{
		public SimpleClass()
		{
		}

		public SimpleClass(object param1)
		{
		}

		private int _privateField;
		public int publicField;

		public int PublicProperty { get; set; }
		public int ReadOnlyProperty { get { return this._privateField; } }
		public int WriteOnlyProperty { set { this._privateField = value; } }

		public void Method1()
		{
		}
		public void Method2(int arg1)
		{
		}
		public int Method3(int arg1, int arg2)
		{
			return arg1;
		}

		public int FatMethod()
		{
			try
			{
				int i = 5;
				return i;
			}
			catch { }
			return -1;
		}

		[Description("This is a method description")]
		[return: Description("This is a return value description")]
		public int AttributedMethod1(
			[param: Description("This is a parameter description")]
			int arg1
			)
		{
			return arg1;
		}

		public event EventHandler SimpleEvent;

		public void ArrayMethod(SimpleClass[] arrayParam)
		{
		}

		public void ByRefMethod(ref SimpleClass byRefParam)
		{
		}

		public unsafe void PointerMethod(int* pointerParam)
		{
		}
	}
}
